package com.herui.iot.data.eval.source;

import com.herui.sdyu_lib.http.callback.Callback;
import com.herui.sport_care.data.eval.AgreementInfo;
import com.herui.sport_care.data.eval.BetaSchemeInfo;
import com.herui.sport_care.data.eval.EvalDetail;
import com.herui.sport_care.data.eval.EvalHostoryInfo;
import com.herui.sport_care.data.eval.EvalInfo;
import com.herui.sport_care.data.eval.OrganTreeInfo;
import com.herui.sport_care.data.eval.TestUserInfo;
import com.herui.sport_care.data.user.UserInfo;

import java.util.List;
import java.util.Map;

import retrofit2.http.Body;
import retrofit2.http.Path;

/**
 * Created by amanda.shan on 2021/9/30.
 */
public interface EvalSource {

    // 获取当日评估
    void getEvalDay(Callback.CommonCallback<List<EvalInfo>> callback);

    // 获取测试方案
    void getBetaScheme(Callback.CommonCallback<List<BetaSchemeInfo>> callback);

    /**
     * 获取测试协议
     * @param betaSchemeId
     * @param callback
     */
    void getAgreement(Long betaSchemeId, Callback.CommonCallback<List<AgreementInfo>> callback);

    /**
     * 获取受试组别
     * @param organId
     * @param callback
     */
    void getOrganTreeList(Integer organId, Callback.CommonCallback<OrganTreeInfo> callback);

    /**
     * 获取历史评估列表
     * @param map
     * @param callback
     */
    void getHistoryEval(Map<String, Object> map,
                        Callback.CommonCallback<List<EvalHostoryInfo>> callback);

    /**
     * 评估详情
     * @param evalId
     * @param callback
     */
    void getEvalDetail(Integer evalId, Callback.CommonCallback<EvalDetail> callback);

    /**
     * 获取测试人员
     * @param map
     * @param callback
     */
    void rateePageList(Map<String, Object> map, Callback.CommonCallback<List<TestUserInfo>> callback);

    /**
     * 计算功率
     * @param userId
     * @param callback
     */
    void calculatePower(Integer userId, Callback.CommonCallback<Double> callback);

    /**
     * 创建评估
     * @param map
     * @param callback
     */
    void create(Map<String, Object> map, Callback.CommonCallback<String> callback);
}

